The developments described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. However, unless otherwise indicated, it should not be assumed that any of the developments described in this section qualify as prior art, or that these developments are generally known to a person of ordinary skill in the art.
To create computer software, developers write computer programs that include source code. The computer program files may be stored in a centralized storage system, which may be referred to as a source code repository. Software development is often an iterative process involving cycles of writing, compiling, updating, and testing the source code. A source code management (SCM) system (also called a revision control system or a version control system) can be used to track and manage source code that is stored in a software repository.
A software repository, or simply, repository, is a computerized data structure that can be used to store source code files in an organized and searchable manner. All or portions of a repository can be stored on a single computer or distributed over a network of computers. For example, portions of a repository may be stored on an individual user's machine while other portions are stored on one or more server computers connected over a network such as the Internet.
Software development can be a collaborative process, in which different developers write different portions of the software. In a collaborative effort, software developers may be required to periodically integrate their source code into a shared source code repository. An SCM system can be used to manage contributions to the shared repository.